package com.xian.d8_genericity_class;

/**
 * 泛型类的概述
 * 定义类时同时定义了泛型的类就是泛型类。
 *
 * 泛型类的格式:修饰符class类名<泛型变量>{ }
 * 范例: public class MyArrayList<T>{ }
 * 此处泛型变量T可以随便写为任意标识，常见的如E、T、K、V等。
 *
 * 作用:编译阶段可以指定数据类型，类似于集合的作用。
 *
 *  泛型类的原理:
 *  把出现泛型变量的地方全部替换成传输的真实数据类型。
 *
 */
public class Test {
    public static void main(String[] args) {
        //需求:模拟ArrayList集合自定义一个集合MyArrayList集合,完成添加和删除功能的泛型设计即可
        MyArrayList<String> list = new MyArrayList<>();
        list.add("java");
        list.add("java");
        list.add("java");
        list.add("java");
        list.remove("java");
        System.out.println(list);

        MyArrayList<Integer> list1 = new MyArrayList<>();
        list1.add(123);
        list1.add(123);
        list1.add(123);
        list1.remove(123);
        System.out.println(list1);
    }
}
